package com.yupi.yupicturebackend.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yupi.yupicturebackend.model.entity.UserPictureView;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;

/**
* @author Administrator
* @description 针对表【user_picture_view(用户图片浏览记录表)】的数据库操作Mapper
* @createDate 2025-04-03 15:30:15
* @Entity generator.domain.UserPictureView
*/
public interface UserPictureViewMapper extends BaseMapper<UserPictureView> {
    /**
     * 这段代码的功能是向数据库表 user_picture_view 插入用户查看图片的记录，如果记录已存在，则更新查看次数和最后查看时间。具体逻辑如下：
     * 插入新记录时，设置 view_count 为 1，last_view_time 为当前时间。
     * 如果主键冲突（记录已存在），则将 view_count 加 1，并更新 last_view_time 为当前时间。
     * @param userId
     * @param pictureId
     */
    @Insert("INSERT INTO user_picture_view (user_id, picture_id, view_count, last_view_time) " +
            "VALUES (#{userId}, #{pictureId}, 1, NOW()) " +
            "ON DUPLICATE KEY UPDATE " +
            "view_count = view_count + 1, last_view_time = NOW()")
    void upsertViewRecord(@Param("userId") Long userId, @Param("pictureId") Long pictureId);

}




